Storage class memory (SCM) combines the low latency and byte-addressability of dynamic read access memory (DRAM) with the non-volatility, areal density, and economical characteristics of traditional storage media. Furthermore, given the byte-addressability and low latency of SCM technologies, central processing units (CPU) can access data stored in SCM without buffering the data in DRAM. Consequently, SCM technologies blur the distinction between computer memory and traditional storage media, and enable single level architectures without DRAM.
Over the course of repeated file allocation, data files stored on a persistent memory device (e.g., SCM) of a computing system can become fragmented. Furthermore, fragmentation can reduce the capacity and/or performance of the persistent memory device. Typically, file systems defragment persistent memory devices using virtual mappings to buffer pages in DRAM to transparently relocate fragmented physical memory pages. However, SCM is not buffered in DRAM, and thus cannot be defragmented by traditional file system techniques.
In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.